package com.example.java8.feature_05.simple;

public class TestLambdaQs {

	//调用该方法需要Eatable对象
	public void eat(Eatable e){
		System.out.println(e);
		e.taste();
	}
	
	
	//调用该方法需要Flyable对象
	public void drive(Flyable f){
		System.out.println("我正在驾驶：" + f);
		f.fly("撸代码的日子");
	}
	
	//调用该方法需要Addable对象
	public void test(Addable add){
		System.out.println("5 + 3 = " + add.add(5, 3));
	}
	
	public static void main(String[] args){
		
		TestLambdaQs lq = new TestLambdaQs();
		//Lambda表达式的代码块只有一条语句，可以省略花括号
		lq.eat(() -> System.out.println("香蕉你个疤瘌"));
		//Lambda表达式的形参列表只有一个形参,可以省略圆括号
		lq.drive(weather -> {
			System.out.println("今天是什么日子？答：" + weather);
			System.out.println("----撸呀撸呀撸呀撸呀撸!!!---");
		});
		//Lambda表达式的代码块只有一条语句，可以省略花括号
		//代码块中只有一条语句，即使该表达式需要返回值，也可以省略return关键字
		lq.test((a, b) -> a + b);
	}
}
